package it.clariter.web.action;

import java.util.List;

import it.clariter.dao.RuoloDAO;
import it.clariter.dao.UtenteDAO;
import it.clariter.model.Ruolo;
import it.clariter.model.Utente;
import it.clariter.web.form.UtenteForm;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

public class CrudUtenteAction extends DispatchAction {


	public ActionForward modifica(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
        
		if(request.getSession().getAttribute("utente")==null){
			response.sendRedirect("login.jsp");
		}
		
		HttpSession session = request.getSession();

		UtenteForm l = (UtenteForm) form;
		Utente utente=new Utente();
		utente.setIdUtente(l.getIdUtente());

		utente=new UtenteDAO().get(utente);
		List<Ruolo> ruoli = new RuoloDAO().getList();
		request.setAttribute("oggetto", utente);
		request.setAttribute("nuovaPassword", ActionConstants.PASSWORD_BASE);
		session.setAttribute("value", "modificaUtente");
		request.setAttribute("titolo", "Modifica Utente");
		session.setAttribute("tasto", "Modifica");
		session.setAttribute("ruoli", ruoli);
		

		return mapping.findForward("update");

	}

	public ActionForward nuovo(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
        
		if(request.getSession().getAttribute("utente")==null){
			response.sendRedirect("login.jsp");
		}
		
		HttpSession session = request.getSession();
		List<Ruolo> ruoli = new RuoloDAO().getList();
		session.setAttribute("ruoli", ruoli);
		session.setAttribute("value", "nuovoUtente");
		session.setAttribute("tasto", "Inserisci nuovo");
		request.setAttribute("titolo", "Inserisci nuovo");
		

		return mapping.findForward("insert");
	}
public ActionForward cancella(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)throws Exception{
		
	if(request.getSession().getAttribute("utente")==null){
		response.sendRedirect("login.jsp");
	}
	
		HttpSession session = request.getSession();
		UtenteForm l = (UtenteForm) form;
		
		Utente utente = new Utente();
		utente.setIdUtente(l.getIdUtente());
		utente=new UtenteDAO().get(utente);
		utente.setStato(ActionConstants.STATO_NON_ATTIVO);
		new UtenteDAO().update(utente, false);
			
		request.setAttribute("messaggio", "Disattivazione effettuata correttamente!");
		utente = (Utente) session.getAttribute("utentePerRicerca");
		List<Utente> lista = new UtenteDAO().findByExample(utente);
		session.setAttribute("utenti", lista);
		
		return mapping.findForward("delete");
		
	}
}
